/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

/*
 * PanelNuevoProyecto.java
 *
 * Created on 26/07/2011, 09:44:32 AM
 */
package sysprojectmg.proyecto.gui;

import java.sql.SQLException;
import java.util.ArrayList;
import java.util.logging.Level;
import java.util.logging.Logger;
import sysprojectmg.gui.FrmVentanaPrincipal;
import sysprojectmg.horasproduccion.be.BeanMiembro;
import sysprojectmg.proyecto.be.BeanProyecto;
import sysprojectmg.proyecto.be.BeanTipoProyecto;
import sysprojectmg.proyecto.biz.ControladorMiembrosProyecto;
import sysprojectmg.proyecto.biz.ControladorProyecto;
import sysprojectmg.utiles.LE;

/**
 *
 * @author Metis Gaia 2010-02
 */
public class PanelNuevoProyecto extends javax.swing.JPanel {

    FrmVentanaPrincipal objPr;
    ArrayList<BeanMiembro> listaMiembros = null;
    ArrayList<BeanTipoProyecto> listaTipoProy = null;

    /** Creates new form PanelNuevoProyecto */
    public PanelNuevoProyecto(final FrmVentanaPrincipal objPrincipal, ArrayList<BeanMiembro> listaMiembros, ArrayList<BeanTipoProyecto> listaTipoProy) throws Exception {
        this.objPr = objPrincipal;
        this.listaMiembros = listaMiembros;
        this.listaTipoProy = listaTipoProy;
        initComponents();
        this.fillAll();
    }

    /** This method is called from within the constructor to
     * initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is
     * always regenerated by the Form Editor.
     */
    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
    private void initComponents() {

        jLabel1 = new javax.swing.JLabel();
        btnGuardar = new javax.swing.JButton();
        btnCancelar = new javax.swing.JButton();
        btnLimpiar = new javax.swing.JButton();
        jPanel1 = new javax.swing.JPanel();
        cmbTipoProyecto = new javax.swing.JComboBox();
        jLabel6 = new javax.swing.JLabel();
        jLabel2 = new javax.swing.JLabel();
        txtNombre = new javax.swing.JTextField();
        jLabel4 = new javax.swing.JLabel();
        jLabel3 = new javax.swing.JLabel();
        cmbFechaInicio = new org.freixas.jcalendar.JCalendarCombo();
        cmbCoordinador = new javax.swing.JComboBox();
        jLabel7 = new javax.swing.JLabel();
        txtCantidadSemanas = new javax.swing.JTextField();
        jLayeredPane2 = new javax.swing.JLayeredPane();
        jScrollPane1 = new javax.swing.JScrollPane();
        tblProductores = new javax.swing.JTable();
        btnEliminar = new javax.swing.JButton();
        btnAgregar = new javax.swing.JButton();
        cmbMiembro = new javax.swing.JComboBox();
        jLabel5 = new javax.swing.JLabel();

        jLabel1.setFont(new java.awt.Font("Tahoma", 0, 24));
        jLabel1.setText("NUEVO PROYECTO");

        btnGuardar.setText("GUARDAR");
        btnGuardar.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btnGuardarActionPerformed(evt);
            }
        });

        btnCancelar.setText("CANCELAR");
        btnCancelar.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btnCancelarActionPerformed(evt);
            }
        });

        btnLimpiar.setText("LIMPIAR");
        btnLimpiar.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btnLimpiarActionPerformed(evt);
            }
        });

        jPanel1.setBorder(javax.swing.BorderFactory.createTitledBorder("Datos Proyecto"));

        jLabel6.setText("Tipo");

        jLabel2.setText("Nombre");

        jLabel4.setText("Fecha Inicio");

        jLabel3.setText("Coordinador");

        jLabel7.setHorizontalAlignment(javax.swing.SwingConstants.TRAILING);
        jLabel7.setText("Cantidad de semanas aproximado");

        javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);
        jPanel1.setLayout(jPanel1Layout);
        jPanel1Layout.setHorizontalGroup(
            jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel1Layout.createSequentialGroup()
                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                    .addGroup(jPanel1Layout.createSequentialGroup()
                        .addContainerGap()
                        .addComponent(jLabel7, javax.swing.GroupLayout.PREFERRED_SIZE, 162, javax.swing.GroupLayout.PREFERRED_SIZE))
                    .addGroup(javax.swing.GroupLayout.Alignment.LEADING, jPanel1Layout.createSequentialGroup()
                        .addGap(130, 130, 130)
                        .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                            .addComponent(jLabel2)
                            .addComponent(jLabel3)
                            .addComponent(jLabel4)
                            .addComponent(jLabel6))))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
                    .addComponent(txtCantidadSemanas)
                    .addComponent(cmbFechaInicio, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                    .addComponent(txtNombre)
                    .addComponent(cmbCoordinador, 0, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                    .addComponent(cmbTipoProyecto, 0, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
                .addContainerGap(92, Short.MAX_VALUE))
        );
        jPanel1Layout.setVerticalGroup(
            jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel1Layout.createSequentialGroup()
                .addContainerGap()
                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabel2)
                    .addComponent(txtNombre, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addGap(8, 8, 8)
                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(cmbCoordinador, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jLabel3))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabel4)
                    .addComponent(cmbFechaInicio, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(cmbTipoProyecto, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jLabel6))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabel7, javax.swing.GroupLayout.DEFAULT_SIZE, 24, Short.MAX_VALUE)
                    .addComponent(txtCantidadSemanas, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addContainerGap())
        );

        jLayeredPane2.setBorder(javax.swing.BorderFactory.createTitledBorder("Lista de miembros"));

        tblProductores.setModel(new javax.swing.table.DefaultTableModel(
            new Object [][] {

            },
            new String [] {
                "PRODUCTORES"
            }
        ) {
            boolean[] canEdit = new boolean [] {
                false
            };

            public boolean isCellEditable(int rowIndex, int columnIndex) {
                return canEdit [columnIndex];
            }
        });
        jScrollPane1.setViewportView(tblProductores);

        jScrollPane1.setBounds(60, 20, 330, 140);
        jLayeredPane2.add(jScrollPane1, javax.swing.JLayeredPane.DEFAULT_LAYER);

        btnEliminar.setText("Eliminar");
        btnEliminar.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btnEliminarActionPerformed(evt);
            }
        });
        btnEliminar.setBounds(310, 170, 80, 23);
        jLayeredPane2.add(btnEliminar, javax.swing.JLayeredPane.DEFAULT_LAYER);

        btnAgregar.setText("Agregar");
        btnAgregar.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btnAgregarActionPerformed(evt);
            }
        });
        btnAgregar.setBounds(310, 200, 80, 23);
        jLayeredPane2.add(btnAgregar, javax.swing.JLayeredPane.DEFAULT_LAYER);

        cmbMiembro.setBounds(130, 200, 160, 20);
        jLayeredPane2.add(cmbMiembro, javax.swing.JLayeredPane.DEFAULT_LAYER);

        jLabel5.setText("Miembro:");
        jLabel5.setBounds(60, 200, 44, 14);
        jLayeredPane2.add(jLabel5, javax.swing.JLayeredPane.DEFAULT_LAYER);

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this);
        this.setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
                .addContainerGap(205, Short.MAX_VALUE)
                .addComponent(jLabel1)
                .addGap(185, 185, 185))
            .addGroup(layout.createSequentialGroup()
                .addGap(137, 137, 137)
                .addComponent(btnCancelar)
                .addGap(26, 26, 26)
                .addComponent(btnLimpiar)
                .addGap(26, 26, 26)
                .addComponent(btnGuardar)
                .addContainerGap(163, Short.MAX_VALUE))
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
                .addContainerGap(64, Short.MAX_VALUE)
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                    .addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jLayeredPane2, javax.swing.GroupLayout.PREFERRED_SIZE, 457, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addGap(58, 58, 58))
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jLabel1)
                .addGap(11, 11, 11)
                .addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                .addGap(18, 18, 18)
                .addComponent(jLayeredPane2, javax.swing.GroupLayout.PREFERRED_SIZE, 236, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGap(18, 18, 18)
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(btnLimpiar)
                    .addComponent(btnCancelar)
                    .addComponent(btnGuardar))
                .addGap(27, 27, 27))
        );
    }// </editor-fold>//GEN-END:initComponents

    private void btnLimpiarActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnLimpiarActionPerformed
        // TODO add your handling code here:
    }//GEN-LAST:event_btnLimpiarActionPerformed

    private void btnGuardarActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnGuardarActionPerformed
        BeanProyecto beanProyecto = new BeanProyecto();
        if (this.llenarBean(beanProyecto)) {
            ControladorProyecto controladorProy = new ControladorProyecto();
            try {
                controladorProy.agregarProyecto(beanProyecto);
                LE.mostrarInformacion("Se agrego el nuevo proyecto con exito");
            } catch (SQLException ex) {
                Logger.getLogger(PanelNuevoProyecto.class.getName()).log(Level.SEVERE, null, ex);
            }
        } else {
            LE.mostrarAdvertencia("Lllenar todos los campos obligatorios");
        }

    }//GEN-LAST:event_btnGuardarActionPerformed

private void btnCancelarActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnCancelarActionPerformed
// TODO add your handling code here:
}//GEN-LAST:event_btnCancelarActionPerformed

private void btnAgregarActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnAgregarActionPerformed
    ArrayList<BeanMiembro> listaProductoresTemp = null;
    ControladorMiembrosProyecto controladorMProy = new ControladorMiembrosProyecto();
    if (cmbMiembro.getSelectedIndex() != 0) {
//            try {
//                listaProductoresTemp = controladorMProy.agregarMiembro(((BeanMiembro) cmbMiembro.getSelectedItem()), objProyecto.getListaProductores(), idSemana);
//            } catch (SQLException ex) {
//                Logger.getLogger(PanelMiembrosProyecto.class.getName()).log(Level.SEVERE, null, ex);
//            }
//            if (listaProductoresTemp != null) {
//                objProyecto.setListaProductores(listaProductoresTemp);
//            }
    }
//        //this.fillAll();
//        this.actualizarTabla();
}//GEN-LAST:event_btnAgregarActionPerformed

private void btnEliminarActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnEliminarActionPerformed
//        if (tblProductores.getSelectedRow() != -1) {
//            if (objProyecto.getNombreCoordinador().equalsIgnoreCase(tblProductores.getValueAt(tblProductores.getSelectedRow(), 0).toString()));
//            objProyecto.getListaProductores().remove(tblProductores.getSelectedRow());
//        }
//        this.actualizarTabla();
    //this.fillAll();
}//GEN-LAST:event_btnEliminarActionPerformed
    // Variables declaration - do not modify//GEN-BEGIN:variables
    private javax.swing.JButton btnAgregar;
    private javax.swing.JButton btnCancelar;
    private javax.swing.JButton btnEliminar;
    private javax.swing.JButton btnGuardar;
    private javax.swing.JButton btnLimpiar;
    private javax.swing.JComboBox cmbCoordinador;
    private org.freixas.jcalendar.JCalendarCombo cmbFechaInicio;
    private javax.swing.JComboBox cmbMiembro;
    private javax.swing.JComboBox cmbTipoProyecto;
    private javax.swing.JLabel jLabel1;
    private javax.swing.JLabel jLabel2;
    private javax.swing.JLabel jLabel3;
    private javax.swing.JLabel jLabel4;
    private javax.swing.JLabel jLabel5;
    private javax.swing.JLabel jLabel6;
    private javax.swing.JLabel jLabel7;
    private javax.swing.JLayeredPane jLayeredPane2;
    private javax.swing.JPanel jPanel1;
    private javax.swing.JScrollPane jScrollPane1;
    private javax.swing.JTable tblProductores;
    private javax.swing.JTextField txtCantidadSemanas;
    private javax.swing.JTextField txtNombre;
    // End of variables declaration//GEN-END:variables

    //llena el bean de un proyecto, verifica que no tenga alguna inconsistencia
    private boolean llenarBean(BeanProyecto beanProyecto) {
        int idUsuario = 0;
        boolean res = true;
        if (txtNombre.getText().toString().equals("")) {     
            return false;
        }
        beanProyecto.setNombreProyecto(txtNombre.getText().toString());
        if ((cmbCoordinador.getSelectedItem()).toString().equals("SELECCIONE")) {
            return false;
        }
        beanProyecto.setCoordinador(((BeanMiembro) cmbCoordinador.getSelectedItem()).getIdMiembro());
        
        beanProyecto.setFechaInicio(new java.sql.Date(cmbFechaInicio.getDate().getTime()));
        
        if ((cmbTipoProyecto.getSelectedItem()).toString().equals("SELECCIONE")) {
            return false;
        }
        beanProyecto.setTipo(((BeanTipoProyecto) cmbTipoProyecto.getSelectedItem()).getIdTipoProyecto());
        
        if (txtCantidadSemanas.getText().toString().equals("")) {
            return false;
        }
        beanProyecto.setCantSemanas(Integer.valueOf(txtCantidadSemanas.getText()));
        return res;
        
        
        
    }

    private void fillAll() throws Exception {
        cmbCoordinador.addItem("SELECCIONE");
        for (BeanMiembro b : listaMiembros) {
            cmbCoordinador.addItem(b);
        }

        cmbTipoProyecto.addItem("SELECCIONE");
        for (BeanTipoProyecto bt : listaTipoProy) {
            cmbTipoProyecto.addItem(bt);
        }

        cmbMiembro.addItem("SELECCIONE");
        for (BeanMiembro b : listaMiembros) {
            cmbMiembro.addItem(b);
        }

    }
}
